package cn.jy.generate.pojo;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 表元数据
 *
 * @author ljw
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ConfTable extends DDLTableInfo {

	/** 表编码 - 配置 */
	private String confTableCode;
	/** 表名 - 配置 */
	private String confTableComment;
	/** 前端名称 - 配置 */
	private String frontTableName;
	/** 关联表类型 - 配置：主从-master-slave, 中间表-intermediate */
	private String relType;
	/** 主表Id */
	private String ddlMainTableId;
	/** 列名称 - 配置 */
	private List<ConfColumn> confColumnList;
	/** 子表 - 配置 */
	private List<ConfTable> childrenList;
	/** 所在微服务名称 */
	private String microServiceName;
	/** 所属微服务模块 */
	private String module;
	/** 数据表类型：业务/基础 */
	private String tableType;
	/** 业务编号类型 */
	private String bizType;
	/** 是否有code字段 */
	private String hasCodeColumn = "0";
	/** 唯一性校验字段，可以多个，用“,”隔开 */
	private String uniquenessColumn;
	/** 是否需要回收站：yes, no */
	private String needRecycleBin = "no";
	/** 是否默认：yes, no */
	private String needDefault = "no";
	/** 多表查询的清空 */
	private String listQueryColumn = "";
	/** 是否c端的个人表，c端需要把管理端和个人端分开 */
	private Boolean needPersonal = false;


	///////////////////// 其他策略 ///////////////////
	/** 该表是否需要 - 树形展示 */
	private String showTree;
	/** 该表是否需要 - 启用禁用 - 基础数据表一般需要 */
	private String needDisable;
	/** 该表是否需要 - 审核反审核 - 一般业务表需要：需要额外的审核人员的字段 */
	private String needAudit;
	/** 该表是否需要 - （旧的）导出 */
	private String needExport;
	/** 该表是否需要 - 租户 - 默认需要 */
	private String needTenant = "no";

	///////////////////// 关联表 - 中间表时使用 ////////////////
	/** 关联表-表编码 */
	private String relTableCode;
	/** 关联表-表包路径 */
	private String relTablePackagePath;
	/** 关联表-主键id */
	private String ddlRelMainTableId;
	/** 关联表-是否微服务：yes和no */
	private String isMicroService;
	/** 关联表-一般关联中间表再关联主表使用 */
	private String relMainTableIdType;
}
